1. Field of the Invention
This invention relates generally to the field of computing devices, and more specifically to sharing devices, such as non-volatile memory, which are not designed for sharing among processors in a system.
2. Description of the Related Art
Many hardware systems include a central processing unit (CPU), i.e., a main processor, and one or more microcontrollers for performing auxiliary functions for the system, such as initialization, management and reset functionality. Each processor or microcontroller, in a system generally has a corresponding non-volatile memory from which the processor or microcontroller reads instructions for performing boot-up, reset, management (such as power state management), or other functions, implemented in firmware. Current solutions for providing controller memory are: (1) to have a separate dedicated/private memory device for each controller/processor; (2) to integrate memory on-chip; or (3) to attempt to arbitrate for the use of an existing memory device.
However, a problem with attempting to arbitrate for the use of another device is that system performance and user experience may be degraded. Moreover, providing each processor and microcontroller with a separate non-volatile memory is expensive in both cost and time. For example, many current embedded microcontroller solutions for notebook and desktop computers use ROM (read-only memory) solutions that present challenges in time to market and flexibility. The time to market issue is due to the need to finalize the microcontroller firmware and data early enough in the design and manufacturing process to meet the schedule needs for production. This usually represents at least a month in the time schedule of a development program. In addition, any late error found in the firmware or data means that all existing inventory is out of date and may have to be discarded.
For the above reasons, some customers or designers prefer using embedded flash or similar memory for storage, since this type of memory allows updates at production test or even in the field. However, use of embedded flash requires a very expensive manufacturing process, because the microcontroller chip integrates flash memory on the same die, and therefore requires a flash manufacturing process. It is typically 30% more expensive to manufacture a chip with this process, and thus makes the chip significantly more expensive. This expense only makes sense if offset by some other factors, e.g., cost savings or product requirements. If a customer only has one set of firmware (code) that is used and if the code never changes, and if the customer is confident that there are no errors in the code that might require an update, ROM and a standard manufacturing process may be used instead of embedded flash memory. If, on the other hand, the customer has multiple firmware codes (e.g., one per product model), then it may be cheaper to use flash. Thus, due to expense, use of embedded flash memory may only be viable if the risk of ROM is too high or if there are multiple codes, low volume or other specific business reasons.
Thus, as discussed above, current solutions are generally expensive, inflexible, cannot be guaranteed to work reliably, may have occasional errors, and/or can cause significant system performance degradation.
Other corresponding issues related to the prior art will become apparent to one skilled in the art after comparing such prior art with embodiments of the present invention as described herein.